home *** CD-ROM | disk | FTP | other *** search
/ CD Ware Multimedia 1995 May / cd Ware (Juegos) Epimundo.iso / DOS / PRGMMING / M2PROTOS.ZIP / MISCASM.DEF < prev    next >
Encoding:
Modula Definition  |  1990-08-20  |  2.1 KB  |  64 lines

  1. (*# module(implementation=>off) *)
  2. (*# module(init_code=>off) *)
  3. (*# data(seg_name => null) *)
  4. (*# call(o_a_copy => off,
  5.          reg_param => (ax, dx),
  6.          reg_saved => (bx, cx, si, di, es, ds, st1, st2),
  7.          inline => on) *)
  8. (*# check(stack=>off,
  9.           index=>off,
  10.           range=>off,
  11.           overflow=>off,
  12.           nil_ptr=>off) *)
  13. DEFINITION MODULE MiscAsm;
  14.  
  15. (* By Carl Neiburger, 169 N. 25th St., San Jose, Calif. 95116 *)
  16.  
  17. TYPE
  18.     A2 = ARRAY [0..1] OF BYTE;
  19.     A3 = ARRAY [0..2] OF BYTE;
  20.     A4 = ARRAY [0..3] OF BYTE;
  21.     A5 = ARRAY [0..4] OF BYTE;
  22.     A6 = ARRAY [0..5] OF BYTE;
  23.  
  24. INLINE PROCEDURE SWAP(val: WORD): CARDINAL = A2(86H,0E0H);
  25. (* Swaps high and low bytes of a word, so 1234H becomes 3412H *)
  26.  
  27. INLINE PROCEDURE HI(val: WORD): CARDINAL = A5(86H,0E0H, 25H,0FFH, 00H );
  28. (* Returns high byte of word; same as val DIV 100H *)
  29.  
  30. INLINE PROCEDURE LO(val: WORD): CARDINAL = A3(25H, 0FFH, 00H );
  31. (* Returns low byte of word; same as val MOD 100H *)
  32.  
  33. INLINE PROCEDURE not(val: BYTE): SHORTCARD = A2(0F7H, 0D0H);
  34. (* Returns bitwize NOT of byte *)
  35.  
  36. INLINE PROCEDURE Not(val: WORD): CARDINAL = A2(0F7H, 0D0H);
  37. (* Returns bitwize NOT of word *)
  38.  
  39. INLINE PROCEDURE LongNot(val: LONGCARD): LONGCARD = A4(0F7H, 0D0H, 0F7H, 0D2H);
  40. (* Returns bitwize NOT of longcard *)
  41.  
  42. INLINE PROCEDURE Xor(val1, val2 : WORD): CARDINAL = A2(33H, 0C2H);
  43. (* Returns bitwize XOR of two words *)
  44.  
  45. INLINE PROCEDURE xor(val1, val2 : BYTE): SHORTCARD = A2(32H, 0C2H);
  46. (* Returns bitwize XOR of two bytes *)
  47.  
  48. INLINE PROCEDURE And(val1, val2 : WORD): CARDINAL = A2(23H, 0C2H);
  49. (* Returns bitwize AND of two words *)
  50.  
  51. INLINE PROCEDURE and(val1, val2 : BYTE): SHORTCARD = A2(22H, 0C2H);
  52. (* Returns bitwize AND of two bytes *)
  53.  
  54. INLINE PROCEDURE Or(val1, val2 : WORD): CARDINAL = A2(0BH, 0C2H);
  55. (* Returns bitwize OR of two words *)
  56.  
  57. INLINE PROCEDURE or(val1, val2 : BYTE): SHORTCARD = A2(0AH, 0C2H);
  58. (* Returns bitwize OR of two bytes *)
  59.  
  60. INLINE PROCEDURE Ctl(val: BYTE): SHORTCARD = A2(34H, 40H);
  61. (* used to flip the 6th bit in Kermit protocol *)
  62.  
  63. END MiscAsm.
  64.